home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm30.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
44KB
|
2,035 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
/*No:RUN_FEATURE_6.use_current_state*/
/*No:RUN_FEATURE_6.is_static*/
/*No:RUN_FEATURE_6.ucs_false*/
T0* r348start_position(T348* C){
T0* R=NULL;
R=r311start_position((T311*)((C)->_base_feature/*32*/));
return R;
}
void r348routine_mapping_jvm(T348* C){
T2 _stack_level=0;
T2 _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(C)->_current_type/*4*/;
r24push_target_as_target((T24*)(oBC12jvm));
_stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
_rt=(C)->_result_type/*40*/;
/*[IF*/
if((_rt)!=((void*)(NULL))){
_stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
}
/*FI]*/
_idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
}
T6 r348use_current(T348* C){
T6 R=0;
{int z1=(C)->_use_current_state/*28*/;
if((14==z1)){
R=1;
}
else
if((13==z1)){
}
else
if((15==z1)){
C->_use_current_state=16;
/*[IRF3.4compute_use_current*/r348std_compute_use_current(C);
/*]*/
R=r348use_current(C);
}
else {R=1;
}}
return R;
}
/*No:RUN_FEATURE_6.mapping_jvm*/
void r348routine_afd_check(T348* C){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367afd_check((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_routine_body/*48*/));
}
/*FI]*/
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_rescue_compound/*52*/));
}
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
void r348std_compute_use_current(T348* C){
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
/*[IF*/
if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_routine_body/*48*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_rescue_compound/*52*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IF*/
if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
C->_use_current_state=13;
}
/*FI]*/
}
T0* r348run_class(T348* C){
T0* R=NULL;
R=X52run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_6.result_type*/
/*No:RUN_FEATURE_6.base_feature*/
/*No:RUN_FEATURE_6.static_value_mem*/
/*No:RUN_FEATURE_6.ensure_assertion*/
T6 r348is_exported_in(T348* C,T0* a1){
T6 R=0;
R=r103gives_permission_to((T103*)(r348clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_6.fatal_error*/
/*No:RUN_FEATURE_6.arguments*/
/*No:RUN_FEATURE_6.us_io*/
void r348fe_vffd7(T348* C){
r21add_position(X52start_position((C)->_result_type/*40*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms348_203984);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
void r348jvm_define_opening(T348* C){
T0* _t=NULL;
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
_t=X52run_type((C)->_result_type/*40*/);
X52jvm_initialize_local(_t,r348jvm_result_offset(C));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
r182jvm_initialize((T182*)((C)->_local_vars/*44*/));
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
}
void r348jvm_define_closing(T348* C){
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
/*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
X52jvm_push_local((C)->_result_type/*40*/,r348jvm_result_offset(C));
}
/*FI]*/
}
/*No:RUN_FEATURE_6.current_type*/
/*No:RUN_FEATURE_6.clients_memory*/
void r348add_client(T348* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T343*n=malloc(sizeof(*n));
*n=M343;
r343with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r23add_client((T23*)(r348run_class(C)),a1);
}
/*No:RUN_FEATURE_6.ucs_in_computation*/
/*No:RUN_FEATURE_6.us_std_input*/
void r348make(T348* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r348run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r348initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_6.routine_body*/
/*No:RUN_FEATURE_6.ucs_true*/
void r348jvm_define(T348* C){
T2 _idx_result=0;
T2 _idx_flag=0;
T2 _branch=0;
T2 _result_space=0;
_idx_result=r345idx_fieldref_for_result((T0*)C);
_idx_flag=r345idx_fieldref_for_flag((T0*)C);
_result_space=X52jvm_stack_space((C)->_result_type/*40*/);
r348method_info_start(C);
r28opcode_getstatic((T28*)(oBC12code_attribute),_idx_flag,1);
_branch=r28opcode_ifne((T28*)(oBC12code_attribute));
/*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
/*]*/
r28opcode_putstatic((T28*)(oBC12code_attribute),_idx_flag,-(1));
r348jvm_define_opening(C);
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
r220compile_to_jvm((T220*)((C)->_routine_body/*48*/));
}
/*FI]*/
r348jvm_define_closing(C);
r28opcode_putstatic((T28*)(oBC12code_attribute),_idx_result,-(_result_space));
r28resolve_u2_branch(_branch);
r28opcode_getstatic((T28*)(oBC12code_attribute),_idx_result,_result_space);
X52jvm_return_code(X52run_type((C)->_result_type/*40*/));
r39finish((T39*)(oBC12method_info));
}
/*No:RUN_FEATURE_6.name*/
/*No:RUN_FEATURE_6.us_std_output*/
/*No:RUN_FEATURE_6.afd_check*/
T0* r348clients(T348* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X52base_class((C)->_current_type/*4*/);
_bfbc=((T311*)((C)->_base_feature/*32*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T311*)((C)->_base_feature/*32*/))->_clients/*20*/;
}
else{
R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}
void r348fall_down(T348* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((C)->_current_type/*4*/);
_running=(((T23*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((C)->_current_type/*4*/);
_i=(((T340*)_running))->_lower/*12*/;
while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
_sub_rc=r340item(((T340*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r23get_feature(((T23*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_6.rescue_compound*/
/*No:RUN_FEATURE_6.actuals_clients*/
/*No:RUN_FEATURE_6.ucs_not_computed*/
T6 r348is_pre_computable(T348* C){
T6 R=0;
/*[IF*/
if(r73fast_has((T73*)(oBC348frozen_general),X50to_string((C)->_name/*16*/))){
R=1;
}
else if((((C)->_arguments/*36*/)==((void*)(NULL)))&&(!(r348use_current(C)))){
/*[IF*/
if(((C)->_routine_body/*48*/)==((void*)(NULL))){
R=1;
}
else if(!(r76invariant_check((T76*)(oBC12run_control)))){
R=r220is_pre_computable((T220*)((C)->_routine_body/*48*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367clear_run_feature((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IRF3.3clear_run_feature*/((((T219*)((T219*)((C)->_ensure_assertion/*24*/))))->_run_feature)=(NULL);
/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_6.us_std_error*/
T2 r348jvm_local_variable_offset(T348* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*44*/),a1));
return R;
}
T0*oBC348frozen_general=NULL;
T2 r348arg_count(T348* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_6.fz_19*/
T2 r348jvm_argument_offset(T348* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
return R;
}
void r348initialize(T348* C){
C->_result_type=((T311*)((C)->_base_feature/*32*/))->_result_type/*56*/;
C->_arguments=((T311*)((C)->_base_feature/*32*/))->_arguments/*24*/;
/*[IF*/
if(X52is_anchored((C)->_result_type/*40*/)){
r348fe_vffd7(C);
}
else if(X52is_formal_generic((C)->_result_type/*40*/)){
r21add_position(X52start_position((C)->_result_type/*40*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms348_321828);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
C->_result_type=X52to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
C->_local_vars=((T311*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
}
/*FI]*/
C->_routine_body=((T311*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
}
/*FI]*/
/*[IF*/
if(r76require_check((T76*)(oBC12run_control))){
C->_require_assertion=r311run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
C->_ensure_assertion=r311run_ensure((T0*)C);
}
/*FI]*/
C->_rescue_compound=((T311*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
}
/*FI]*/
r345add_function((T0*)C);
}
/*No:RUN_FEATURE_6.can_be_dropped*/
/*No:RUN_FEATURE_6.require_assertion*/
/*No:RUN_FEATURE_6.update_tmp_jvm_descriptor*/
T2 r348jvm_max_locals(T348* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
R=(R)+(X52jvm_stack_space((C)->_result_type/*40*/));
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_6.compute_use_current*/
void r348method_info_start(T348* C){
T2 _flags=0;
_flags=X52jvm_method_flags((C)->_current_type/*4*/);
r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r348jvm_descriptor(C));
}
/*No:RUN_FEATURE_6.local_vars*/
T2 r348jvm_result_offset(T348* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
}
/*FI]*/
return R;
}
void r348routine_update_tmp_jvm_descriptor(T348* C){
T0* _rt=NULL;
T0* _ct=NULL;
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
_ct=(C)->_current_type/*4*/;
X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
r191jvm_descriptor_in((T191*)((C)->_arguments/*36*/),oBC27tmp_jvm_descriptor);
}
/*FI]*/
_rt=(C)->_result_type/*40*/;
/*[IF*/
if((_rt)==((void*)(NULL))){
r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
}
else{
_rt=X52run_type(_rt);
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
}
/*FI]*/
}
/*No:RUN_FEATURE_6.jvm_field_or_method*/
T0* r348jvm_descriptor(T348* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
/*]*/
/*[IRF3.4update_tmp_jvm_descriptor*/r348routine_update_tmp_jvm_descriptor(C);
/*]*/
R=oBC27tmp_jvm_descriptor;
return R;
}
/*No:TYPE_REAL.start_position*/
void r275jvm_initialize_local(T2 a1){
/*[IRF3.4opcode_fconst_0*/r28opcode((T28*)(oBC12code_attribute),11,1);
/*]*/
/*[IRF3.6jvm_write_local*/{T2 b1=a1;
r28opcode_fstore((T28*)(oBC12code_attribute),b1);
}/*]*/
}
int fBC275used_as_reference=0;
void r275used_as_reference(void){
if (fBC275used_as_reference==0){
fBC275used_as_reference=1;
r275load_ref(((T0*)ms14_7696));
}}
/*No:TYPE_REAL.is_user_expanded*/
/*No:TYPE_REAL.id*/
/*No:TYPE_REAL.is_pointer*/
/*No:TYPE_REAL.jvm_check_class_invariant*/
T0* r275to_runnable(T275* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r275check_type(C);
return R;
}
/*No:TYPE_REAL.us_real_ref*/
T0* r275run_class(T275* C){
T0* R=NULL;
R=r22run_class((T0*)C);
return R;
}
/*No:TYPE_REAL.us_item*/
/*No:TYPE_REAL.is_like_current*/
/*No:TYPE_REAL.is_bit*/
/*No:TYPE_REAL.jvm_write_local*/
T0* r275smallest_ancestor(T275* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X52run_type(a1);
/*[IF*/
if(X52is_integer(_rto)){
R=(T0*)C;
}
else if(X52is_real(_rto)){
R=(T0*)C;
}
else if(X52is_double(_rto)){
R=a1;
}
else{
R=r277smallest_ancestor((T277*)(r275type_real_ref()),_rto);
}
/*FI]*/
return R;
}
T0* r275run_time_mark(void){
T0* R=NULL;
R=((T0*)ms14_1208);
return R;
}
/*No:TYPE_REAL.is_expanded*/
T2 r275jvm_if_x_eq(void){
T2 R=0;
/*[IRF3.4opcode_fcmpg*/r28opcode((T28*)(oBC12code_attribute),150,-(1));
/*]*/
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
/*No:TYPE_REAL.jvm_xnewarray*/
/*No:TYPE_REAL.jvm_push_local*/
/*No:TYPE_REAL.fz_dot*/
/*No:TYPE_REAL.is_like_feature*/
T6 r275is_a(T275* C,T0* a1){
T6 R=0;
/*[IF*/
if((X52is_real(a1))||(X52is_double(a1))){
R=1;
}
else if(r63is_subclass_of((T63*)(r275base_class(C)),X52base_class(a1))){
R=1;
r275used_as_reference();
}
else if((X52run_time_mark(a1))==((void*)(((T0*)ms14_10890)))){
R=1;
((/*UT*/(void)((T271*)(r275type_double()))),r271used_as_reference());
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}
T0* r275written_mark(void){
T0* R=NULL;
R=((T0*)ms14_1208);
return R;
}
/*No:TYPE_REAL.is_character*/
void r275error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r275make(T275* C,T0* a1){
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,((T0*)ms14_1208),a1);
C->_base_class_name=(T0*)n;
}
}
T2 r275jvm_convert_to(T0* a1){
T2 R=0;
R=1;
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
T2 _idx=0;
T0* _rc=NULL;
_ca=oBC12code_attribute;
_rc=r277run_class((T277*)(r275type_real_ref()));
r23jvm_basic_new(((T23*)_rc));
/*[IRF3.4opcode_dup_x1*/r28opcode(((T28*)_ca),90,1);
/*]*/
/*[IRF3.4opcode_swap*/r28opcode(((T28*)_ca),95,0);
/*]*/
_idx=r23jvm_constant_pool_index(((T23*)_rc));
_idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_71));
r28opcode_putfield(((T28*)_ca),_idx,-(2));
}/*]*/
}
else if(X52is_double(a1)){
/*[IRF3.4opcode_f2d*/r28opcode((T28*)(oBC12code_attribute),141,1);
/*]*/
R=2;
}
else if(X52is_real(a1)){
}
else{
/*[IRF3.4opcode_f2i*/r28opcode((T28*)(oBC12code_attribute),139,0);
/*]*/
}
/*FI]*/
return R;
}
/*No:TYPE_REAL.is_array*/
void r275fatal_error_generic_list(T275* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
T2 r275jvm_push_default(void){
T2 R=0;
/*[IRF3.4opcode_fconst_0*/r28opcode((T28*)(oBC12code_attribute),11,1);
/*]*/
R=1;
return R;
}
/*No:TYPE_REAL.is_dummy_expanded*/
T0* r275generic_list(T275* C){
T0* R=NULL;
r275fatal_error_generic_list(C);
return R;
}
T0* r275base_class(T275* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
T2 r275jvm_if_x_ne(void){
T2 R=0;
/*[IRF3.4opcode_fcmpg*/r28opcode((T28*)(oBC12code_attribute),150,-(1));
/*]*/
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
/*No:TYPE_REAL.base_class_name*/
/*No:TYPE_REAL.jvm_standard_is_equal*/
/*No:TYPE_REAL.is_formal_generic*/
T6 r275is_a_in(T275* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r275written_mark())==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r275to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r275look_up_for(T275* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r275base_class(C)),a1,a2);
return R;
}
/*No:TYPE_REAL.us_double_ref*/
/*No:TYPE_REAL.jvm_to_reference*/
/*No:TYPE_REAL.run_type*/
T6 r275has_creation(T275* C,T0* a1){
T6 R=0;
r21add_position(X50start_position(a1));
r275error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms269_100044));
return R;
}
/*No:TYPE_REAL.expanded_initializer*/
/*No:TYPE_REAL.jvm_method_flags*/
/*No:TYPE_REAL.is_boolean*/
/*No:TYPE_REAL.is_generic*/
/*No:TYPE_REAL.jvm_xaload*/
/*No:TYPE_REAL.is_real*/
/*No:TYPE_REAL.is_any*/
/*No:TYPE_REAL.nb_errors*/
/*No:TYPE_REAL.fz_78*/
/*No:TYPE_REAL.is_basic_eiffel_expanded*/
/*No:TYPE_REAL.jvm_descriptor_in*/
int fBC12type_real_ref=0;
T0*oBC12type_real_ref=NULL;
T0* r275type_real_ref(void){
if(fBC12type_real_ref==0){
T0* _real_ref=NULL;
fBC12type_real_ref=1;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,((T0*)ms14_7696),NULL);
_real_ref=(T0*)n;
}
{T277*n=malloc(sizeof(*n));
*n=M277;
/*[IRF3.3make*/((((T277*)(n)))->_base_class_name)=(_real_ref);
/*]*/
oBC12type_real_ref=(T0*)n;
}
}
return oBC12type_real_ref;}
int fBC12type_double=0;
T0*oBC12type_double=NULL;
T0* r275type_double(void){
if(fBC12type_double==0){
fBC12type_double=1;
{T271*n=malloc(sizeof(*n));
*n=M271;
r271make(n,NULL);
oBC12type_double=(T0*)n;
}
}
return oBC12type_double;}
/*No:TYPE_REAL.is_string*/
T6 r275is_native_array(T275* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_REAL.is_integer*/
/*No:TYPE_REAL.is_anchored*/
/*No:TYPE_REAL.is_run_type*/
/*No:TYPE_REAL.is_reference*/
/*No:TYPE_REAL.is_none*/
/*No:TYPE_REAL.us_real*/
/*No:TYPE_REAL.jvm_return_code*/
/*No:TYPE_REAL.jvm_target_descriptor_in*/
/*No:TYPE_REAL.fz_inako*/
/*No:TYPE_REAL.jvm_xastore*/
/*No:TYPE_REAL.is_like_argument*/
void r275load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r63run_class((T63*)(r70base_class(((T70*)_cn))));
r23set_at_run_time(((T23*)_rc));
_rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_1764));
}
int fBC275check_type=0;
void r275check_type(T275* C){
if (fBC275check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC275check_type=1;
_bc=r275base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
_rc=r275run_class(C);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(!((((T63*)_bc))->_is_expanded/*20*/)){
r275error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms275_29722));
}
/*FI]*/
}
/*FI]*/
}}
T2 r275jvm_stack_space(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
R=1;
/*FI]*/
return R;
}
/*No:TYPE_REAL.is_double*/
T2 r275jvm_expanded_from_reference(T0* a1){
T2 R=0;
T0* _ca=NULL;
T2 _idx=0;
T0* _rc=NULL;
_ca=oBC12code_attribute;
_rc=r277run_class((T277*)(r275type_real_ref()));
r23opcode_checkcast(((T23*)_rc));
_idx=r23jvm_constant_pool_index(((T23*)_rc));
_idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_71));
r28opcode_getfield(((T28*)_ca),_idx,0);
R=1;
return R;
}
/*No:FEATURE_CLAUSE_LIST.add_last*/
void r97get_started(T97* C,T0* a1){
T2 _i=0;
_i=1;
while (!((_i)>(((T99*)((C)->_list/*0*/))->_upper/*8*/))) {
r98add_into((T98*)(r99item((T99*)((C)->_list/*0*/),_i)),a1);
_i=(_i)+(1);
}
}
/*No:FEATURE_CLAUSE_LIST.make*/
/*No:FEATURE_CLAUSE_LIST.list*/
/*No:FORMAL_GENERIC_LIST.start_position*/
/*No:FORMAL_GENERIC_LIST.item*/
/*No:FORMAL_GENERIC_LIST.count*/
void r96make(T96* C,T0* a1,T0* a2){
T0* _fga=NULL;
T2 _i=0;
T2 _rank=0;
C->_start_position=a1;
C->_list=a2;
_i=(((T284*)a2))->_upper/*8*/;
while (!((_i)==(0))) {
_fga=r284item(((T284*)a2),_i);
_rank=r96index_of(C,(((T283*)_fga))->_name/*0*/);
/*[IF*/
if((_rank)!=(_i)){
r21add_position(/*(IRF4.6start_position*/(((T70*)(((T283*)(r284item(((T284*)a2),_rank)))->_name/*0*/)))->_start_position/*4*//*)*/);
r21add_position(/*(IRF4.6start_position*/(((T70*)((((T283*)_fga))->_name/*0*/)))->_start_position/*4*//*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms96_178923);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
T2 r96index_of(T96* C,T0* a1){
T2 R=0;
T0* _to_string=NULL;
_to_string=(((T70*)a1))->_to_string/*0*/;
R=((T284*)((C)->_list/*4*/))->_upper/*8*/;
while (!(((R)==(0))||((_to_string)==((void*)(((T70*)(((T283*)(r284item((T284*)((C)->_list/*4*/),R)))->_name/*0*/))->_to_string/*0*/))))) {
R=(R)-(1);
}
return R;
}
/*No:FORMAL_GENERIC_LIST.list*/
/*No:FORMAL_GENERIC_LIST.fatal_error*/
/*No:CST_ATT_BIT.base_class*/
/*No:CST_ATT_BIT.value_mem*/
T0* r214start_position(T214* C){
T0* R=NULL;
R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r214is_merge_with(T214* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r191is_a_in((T191*)(/*(IRF4.1arguments*/NULL/*)*/),X95arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X52is_a_in(X95result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r191is_a_in((T191*)(X95arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r214merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_BIT.first_name*/
/*No:CST_ATT_BIT.em1*/
/*No:CST_ATT_BIT.header_comment*/
/*No:CST_ATT_BIT.names*/
/*No:CST_ATT_BIT.result_type*/
/*No:CST_ATT_BIT.code_require*/
/*No:CST_ATT_BIT.make_e_feature*/
void r214add_into(T214* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
_fn=r87item((T87*)((C)->_names/*8*/),_i);
/*[IF*/
if(r94has(((T94*)a1),X50to_key(_fn))){
_fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
r21add_position(X50start_position(_fn));
r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
r21error((T21*)(oBC12eh),((T0*)ms95_41905));
/*[IRF3.6append*/{T0* b1=X50to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
else{
r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r214can_hide(T214* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
r21add_position(X95start_position(a1));
r214error(r214start_position(C),((T0*)ms95_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
/*[IF*/
{/*AT*/r21add_position(X95start_position(a1));
r214error(r214start_position(C),((T0*)ms95_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r214merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_BIT.ensure_assertion*/
T0* r214try_to_undefine(T214* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r21add_position(X50start_position(a1));
_fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X50undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r214try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r214merge_header_comments(C,R);
}
else{
r63fatal_undefine(((T63*)a2),a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_BIT.is_deferred*/
/*No:CST_ATT_BIT.set_clients*/
/*No:CST_ATT_BIT.value*/
/*No:CST_ATT_BIT.nb_errors*/
T0* r214to_run_feature(T214* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(a1);
R=r23at(((T23*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 372:
break;
default:
R=NULL;
};/*[IF*/
if((R)==((void*)(NULL))){
{T372*n=malloc(sizeof(*n));
*n=M372;
r372make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r214merge_header_comments(T214* C,T0* a1){
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
}
else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X95set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_BIT.arguments*/
/*No:CST_ATT_BIT.require_assertion*/
T0* r214try_to_undefine_aux(T214* C,T0* a1,T0* a2){
T0* R=NULL;
r21add_position(r214start_position(C));
r214error(X50start_position(a1),((T0*)ms205_99414));
r63fatal_undefine(((T63*)a2),a1);
return R;
}
/*No:CST_ATT_BIT.fz_dot*/
void r214error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r214make(T214* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T214*)(C)))->_names)=(a1);
/*]*/
C->_result_type=a2;
C->_value_mem=a3;
}
void r214collect_for(T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=/*(IRF4.1require_assertion*/NULL/*)*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
r365add_last((T365*)(oBC95require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_BIT.set_header_comment*/
/*No:CST_ATT_BIT.clients*/
void r40write_bytes(T40* C){
r31print_count((T31*)(oBC12echo),((T0*)ms40_2655),(C)->_count/*0*/);
r24b_put_u2((T24*)(oBC12jvm),(C)->_count/*0*/);
r24b_put_byte_string((T24*)(oBC12jvm),oBC40storage);
}
void r40append_u2(T0* a1,T2 a2){
/*[IRF3.6append_u1*/{T0* b1=a1;
T2 b2=(a2)/(256);
r7extend(((T7*)b1),((T3)(b2)));
}/*]*/
/*[IRF3.6append_u1*/{T0* b1=a1;
T2 b2=(a2)%(256);
r7extend(((T7*)b1),((T3)(b2)));
}/*]*/
}
void r40add(T40* C,T2 a1,T2 a2,T2 a3){
C->_count=((C)->_count/*0*/)+(1);
r40append_u2(oBC40storage,a1);
r40append_u2(oBC40storage,a2);
r40append_u2(oBC40storage,a3);
r40append_u2(oBC40storage,0);
}
/*No:FIELD_INFO.count*/
/*No:FIELD_INFO.append_u1*/
void r40clear(T40* C){
C->_count=0;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC40storage))))->_count)=(0);
/*]*/
}
T0*oBC40storage=NULL;
/*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_define_function*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.us_fclose*/
void r302fe_c2jvm(T0* a1){
r21add_position(r24target_position((T24*)(oBC12jvm)));
r21add_position(X27start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms293_140400);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_add_method_for_function*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.us_free*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.use_current*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_mapping_function*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_add_method_for_procedure*/
void r302jvm_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if((((T0*)ms14_6936))==((void*)(a3))){
r24drop_ith_argument((T24*)(oBC12jvm),1);
}
else if(((((T0*)ms14_5598))==((void*)(a2)))&&((((T0*)ms14_1712))==((void*)(a3)))){
r24drop_ith_argument((T24*)(oBC12jvm),1);
}
else{
r302fe_c2jvm(a1);
}
/*FI]*/
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.us_memory*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_define_procedure*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.fatal_error*/
T0*oBC367sucess=NULL;
T6 r367use_current(T367* C){
T6 R=0;
T2 _i=0;
_i=1;
while (!((R)||((_i)>(((T365*)((C)->_list/*0*/))->_upper/*8*/)))) {
R=r291use_current((T291*)(r365item((T365*)((C)->_list/*0*/),_i)));
_i=(_i)+(1);
}
return R;
}
void r367clear_run_feature(T367* C){
T2 _i=0;
_i=((T365*)((C)->_list/*0*/))->_upper/*8*/;
while (!((_i)==(0))) {
/*[IRF3.3clear_run_feature*/((((T291*)((T291*)(r365item((T365*)((C)->_list/*0*/),_i)))))->_run_feature)=(NULL);
/*]*/
_i=(_i)-(1);
}
}
/*No:RUN_REQUIRE.make*/
void r367compile_to_jvm(T367* C){
T0* _ca=NULL;
T2 _i=0;
/*[IF*/
if(r76require_check((T76*)(oBC12run_control))){
_ca=oBC12code_attribute;
/*[IF*/
if((((T365*)((C)->_list/*0*/))->_upper/*8*/)==(1)){
r291compile_to_jvm((T291*)(r365first((T365*)((C)->_list/*0*/))),1);
/*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
/*]*/
}
else{
/*[IRF3.3clear*/((((T48*)((T48*)(oBC367sucess))))->_upper)=(-(1));
/*]*/
_i=1;
while (!((_i)>((((T365*)((C)->_list/*0*/))->_upper/*8*/)-(1)))) {
r291compile_to_jvm((T291*)(r365item((T365*)((C)->_list/*0*/),_i)),0);
r48add_last((T48*)(oBC367sucess),r28opcode_ifne(((T28*)_ca)));
_i=(_i)+(1);
}
r291compile_to_jvm((T291*)(r365item((T365*)((C)->_list/*0*/),_i)),1);
/*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
/*]*/
r28resolve_with(oBC367sucess);
}
/*FI]*/
}
/*FI]*/
}
void r367afd_check(T367* C){
T2 _i=0;
_i=((T365*)((C)->_list/*0*/))->_upper/*8*/;
while (!((_i)==(0))) {
r291afd_check((T291*)(r365item((T365*)((C)->_list/*0*/),_i)));
_i=(_i)-(1);
}
}
/*No:RUN_REQUIRE.list*/
/*No:CALL_INFIX_DIV.static_value*/
/*No:CALL_INFIX_DIV.feature_name*/
/*No:CALL_INFIX_DIV.is_static*/
/*No:CALL_INFIX_DIV.is_manifest_string*/
T0* r136start_position(T136* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r136add_comment(T136* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r136to_integer(T136* C){
T2 R=0;
r136error(r136start_position(C),((T0*)ms13_45846));
return R;
}
T6 r136use_current(T136* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.jvm_branch_if_true*/
T0* r136to_runnable(T136* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r136runnable_expression((C)->_target/*4*/,a1);
_a=r136runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
{/*AT*//*[IF*/
if(X52is_real(_at)){
/*[IF*/
if(X52is_integer(_tt)){
_tbee=X52run_type(_at);
if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
case 274: case 272: case 270: case 271: case 275: case 268:
break;
default:
_tbee=NULL;
};{T379*n=malloc(sizeof(*n));
*n=M379;
r379make(n,_t,_tbee);
_t=(T0*)n;
}
}
/*FI]*/
}
else if(X52is_double(_at)){
/*[IF*/
if((X52is_integer(_tt))||(X52is_real(_tt))){
_tbee=X52run_type(_at);
if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
case 274: case 272: case 270: case 271: case 275: case 268:
break;
default:
_tbee=NULL;
};{T379*n=malloc(sizeof(*n));
*n=M379;
r379make(n,_t,_tbee);
_t=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_rf=r136run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r136run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T136*n=malloc(sizeof(*n));
*n=M136;
r136with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.us_slash*/
T2 r136compile_to_jvm_into(T136* C,T0* a1){
T2 R=0;
R=r136standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_DIV.is_pre_computable*/
/*No:CALL_INFIX_DIV.fz_bad_argument*/
/*No:CALL_INFIX_DIV.fz_iinaiv*/
T0* r136result_type(T136* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.static_value_mem*/
/*No:CALL_INFIX_DIV.run_feature*/
T0* r136runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r136standard_compile_target_to_jvm(T136* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
X52jvm_check_class_invariant(r136result_type(C));
}
/*No:CALL_INFIX_DIV.compile_to_jvm_assignment*/
/*No:CALL_INFIX_DIV.fz_07*/
void r136compile_to_jvm_old(T136* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_DIV.jvm_assign*/
/*No:CALL_INFIX_DIV.jvm_branch_if_false*/
/*No:CALL_INFIX_DIV.compile_to_jvm*/
/*No:CALL_INFIX_DIV.arg_count*/
void r136with(T136* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r136run_feature_match(C,a5);
}
/*No:CALL_INFIX_DIV.call_proc_call_c2jvm*/
/*No:CALL_INFIX_DIV.is_result*/
/*No:CALL_INFIX_DIV.fatal_error*/
void r136run_feature_match(T136* C,T0* a1){
r136run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_DIV.arguments*/
T0* r136runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.can_be_dropped*/
/*No:CALL_INFIX_DIV.implicit_cast*/
/*No:CALL_INFIX_DIV.compile_target_to_jvm*/
/*No:CALL_INFIX_DIV.isa_dca_inline_argument*/
/*No:CALL_INFIX_DIV.arg1*/
void r136run_feature_has_result(T136* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T2 r136jvm_standard_branch_if_false(T136* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
T0* r136run_feature_for(T136* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_DIV.target*/
void r136error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r136make(T136* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r136operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_DIV.is_current*/
T2 r136standard_compile_to_jvm_into(T136* C,T0* a1){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=X52jvm_convert_to(X52run_type(r136result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_DIV.is_void*/
T0* r136operator(void){
T0* R=NULL;
R=((T0*)ms14_48);
return R;
}
T2 r136jvm_standard_branch_if_true(T136* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r136afd_check(T136* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:LOCAL_NAME1.static_value*/
/*No:LOCAL_NAME1.is_used*/
/*No:LOCAL_NAME1.is_static*/
/*No:LOCAL_NAME1.is_manifest_string*/
/*No:LOCAL_NAME1.start_position*/
/*No:LOCAL_NAME1.to_string*/
T0* r187add_comment(T187* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:LOCAL_NAME1.rank*/
T2 r187to_integer(T187* C){
T2 R=0;
r187error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:LOCAL_NAME1.use_current*/
T2 r187jvm_branch_if_true(T187* C){
T2 R=0;
r187compile_to_jvm(C);
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
T0* r187to_runnable(T187* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
_rt=X52to_runnable((C)->_result_type/*12*/,a1);
/*[IF*/
if((_rt)==((void*)(NULL))){
r21add_position(X52start_position((C)->_result_type/*12*/));
r187error((C)->_start_position/*4*/,((T0*)ms187_24548));
}
/*FI]*/
/*[IF*/
if((_rt)==((void*)((C)->_result_type/*12*/))){
R=(T0*)C;
}
else{
R=r187twin(C);
/*[IRF3.3set_result_type*/((((T187*)(((T187*)R))))->_result_type)=(_rt);
/*]*/
}
/*FI]*/
return R;
}
T2 r187compile_to_jvm_into(T187* C,T0* a1){
T2 R=0;
R=r187standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:LOCAL_NAME1.is_pre_computable*/
/*No:LOCAL_NAME1.fz_iinaiv*/
/*No:LOCAL_NAME1.result_type*/
void r187standard_compile_target_to_jvm(T187* C){
r187compile_to_jvm(C);
X52jvm_check_class_invariant((C)->_result_type/*12*/);
}
void r187compile_to_jvm_assignment(T187* C,T0* a1){
T2 _jvm_offset=0;
T2 _space=0;
_jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
_space=X109compile_to_jvm_into((((T287*)a1))->_right_side/*8*/,X52run_type((C)->_result_type/*12*/));
X52jvm_write_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
}
/*No:LOCAL_NAME1.set_is_used*/
/*No:LOCAL_NAME1.compile_to_jvm_old*/
void r187jvm_assign(T187* C){
T2 _jvm_offset=0;
_jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
X52jvm_write_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
}
T2 r187jvm_branch_if_false(T187* C){
T2 R=0;
r187compile_to_jvm(C);
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
void r187compile_to_jvm(T187* C){
T2 _jvm_offset=0;
_jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
X52jvm_push_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
}
T0* r187base_class_written(T187* C){
T0* R=NULL;
R=r70base_class((T70*)(r187written_in(C)));
return R;
}
/*No:LOCAL_NAME1.is_result*/
/*No:LOCAL_NAME1.can_be_dropped*/
T0* r187twin(T187* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T187*)R)=*C;
return R;
}
/*No:LOCAL_NAME1.name_clash*/
/*No:LOCAL_NAME1.compile_target_to_jvm*/
/*No:LOCAL_NAME1.isa_dca_inline_argument*/
T0* r187written_in(T187* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position/*4*/;
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=(((T59*)_sp))->_base_class_name/*0*/;
}
/*FI]*/
return R;
}
/*No:LOCAL_NAME1.set_result_type*/
void r187name_clash_for(T187* C,T0* a1,T0* a2){
T0* _bc=NULL;
T0* _rc=NULL;
T0* _rf=NULL;
_bc=r187base_class_written(C);
/*[IF*/
if(r63has_simple_feature_name(((T63*)_bc),(C)->_to_string/*8*/)){
_rc=X52run_class(a1);
_rf=r23get_feature_with(((T23*)_rc),(C)->_to_string/*8*/);
/*[IF*/
if((_rf)!=((void*)(NULL))){
r21add_position(X27start_position(_rf));
}
/*FI]*/
r187error((C)->_start_position/*4*/,a2);
}
/*FI]*/
}
void r187error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:LOCAL_NAME1.set_rank*/
void r187make(T187* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r86item(a2);
}
/*No:LOCAL_NAME1.is_current*/
T2 r187standard_compile_to_jvm_into(T187* C,T0* a1){
T2 R=0;
r187compile_to_jvm(C);
R=X52jvm_convert_to(X52run_type((C)->_result_type/*12*/),a1);
return R;
}
/*No:LOCAL_NAME1.is_void*/
/*No:LOCAL_NAME1.afd_check*/